Conventionally, designing an integrated circuit can be a long process involving many iterations. Traditionally, this iterative process includes placing a via into an integrated circuit design, while continually running tests to verify that the via is optimally placed. When each integrated circuit layout is completed, the above-mentioned process is generally repeated because completed layouts often do not meet minimum desired manufacturing levels. Further, this repeated redesigning of integrated circuit layouts causes a longer design cycle and increases costs throughout.